package com.allen.common.http;

import com.google.gson.Gson;
import com.yanzhenjie.nohttp.Headers;
import com.yanzhenjie.nohttp.RequestMethod;
import com.yanzhenjie.nohttp.rest.RestRequest;
import com.yanzhenjie.nohttp.rest.StringRequest;

/**
 * @Autor lwl
 * 日期    2021/4/12
 * 目的
 */
public class MyJasionParser<T> extends RestRequest<T> {

    // 要解析的JavaBean的class。
    private Class<T> clazz;

    public MyJasionParser(String url, Class<T> clazz) {
        this(url, RequestMethod.GET, clazz);
    }

    public MyJasionParser(String url, RequestMethod requestMethod, Class<T> clazz) {
        super(url, requestMethod);
        this.clazz = clazz;
    }

    @Override
    public T  parseResponse(Headers responseHeaders, byte[] responseBody) {
        String response = StringRequest.parseResponseString(responseHeaders, responseBody);
        Gson gson = new Gson();
        // 这里如果数据格式错误，或者解析失败，会在失败的回调方法中返回 ParseError 异常。
        return gson.fromJson(response,clazz);
    }
}
